#include "logger.h"
#include <ctime>
#include <iomanip>

Logger::Logger() 
{
    logFile.open("task_manager.log", std::ios::app);
    if (!logFile.is_open()) {
        throw std::runtime_error("无法打开日志文件");
    }
}

Logger::~Logger() 
{
    if (logFile.is_open()) {
        logFile.close();
    }
}

void Logger::log(const std::string &message) 
{
    // 加锁 保证线程安全
    std::lock_guard<std::mutex> lock(logMutex);

    // 获取当前时间
    auto now = time(nullptr);
    auto tm = *std::localtime(&now);

    // 写入日志 （std::put_time() 函数将 tm 结构转换为字符串）
    logFile << std::put_time(&tm, "%Y-%m-%d %H:%M:%S") << " " << message << std::endl;
    // 刷新缓冲区
    logFile.flush();
}